unit DIrr.Consts;

{$I DIrr.inc}

interface

uses
  DIrr.Color, DIrr.Vector3D, DIrr.Dimension2D, Dirr.Structs;

const
  COLOR_0: TIrrColor = (SBlue : 0; SGreen : 0; SRed : 0; SAlpha : 0);
  COLOR_VLSN_FOOT: TIrrColor = (SBlue : 180; SGreen : 230; SRed : 0; SAlpha : 51);
  COLOR_FULL: TIrrColor = (SBlue : 255; SGreen : 255; SRed : 255; SAlpha : 255);
  COLOR_TRANS: TIrrColor = (SBlue : 255; SGreen : 255; SRed : 255; SAlpha : 100);
  COLOR_BLACK: TIrrColor = (SBlue : 0; SGreen : 0; SRed : 0; SAlpha : 255);
  COLOR_0ALPHA: TIrrColor = (SBlue : 255; SGreen : 255; SRed : 255; SAlpha : 0);


  COLORF_1: TIrrColorF = (SRed : 1; SGreen : 1; SBlue : 1; SAlpha : 1);

  VECTOR3DF_0: TVector3DF = (X : 0; Y : 0; Z : 0);
  VECTOR3DF_1: TVector3DF = (X : 1; Y : 1; Z : 1);
  VECTOR3DF_5: TVector3DF = (X : 5; Y : 5; Z : 5);
  VECTOR3DF_LOOKAT: TVector3DF = (X : 0; Y : 0; Z : 100);

  VECTOR3DF_XP1: TVector3DF = (X : 1; Y : 0; Z : 0);
  VECTOR3DF_YP1: TVector3DF = (X : 0; Y : 1; Z : 0);
  VECTOR3DF_ZP1: TVector3DF = (X : 0; Y : 0; Z : 1);
  VECTOR3DF_XN1: TVector3DF = (X : -1; Y : 0; Z : 0);
  VECTOR3DF_YN1: TVector3DF = (X : 0; Y : -1; Z : 0);
  VECTOR3DF_ZN1: TVector3DF = (X : 0; Y : 0; Z : -1);


  DIMENSION2DF_0: TDimension2DF = (Width : 0; Height : 0);
  DIMENSION2DF_1: TDimension2DF = (Width : 1; Height : 1);
  DIMENSION2DF_5: TDimension2DF = (Width : 5; Height : 5);
  DIMENSION2DF_10: TDimension2DF = (Width : 10; Height : 10);

  DIMENSION2D_0: TDimension2D = (Width : 0; Height : 0);
  DIMENSION2D_64: TDimension2D = (Width : 64; Height : 64);

const
	//! Name of the parameter for changing how Irrlicht handles the ZWrite flag for transparent (blending) materials
	(** The default behavior in Irrlicht is to disable writing to the
	z-buffer for all really transparent, i.e. blending materials. This
	avoids problems with intersecting faces, but can also break renderings.
	If transparent materials should use the SMaterial flag for ZWriteEnable
	just as other material types use this attribute.
	Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true);
	\endcode
	**)
	ALLOW_ZWRITE_ON_TRANSPARENT: PAnsiChar = 'Allow_ZWrite_On_Transparent';

	//! Name of the parameter for changing the texture path of the built-in csm loader.
	(** Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::CSM_TEXTURE_PATH, "path/to/your/textures");
	\endcode
	**)
	CSM_TEXTURE_PATH: PAnsiChar = 'CSM_TexturePath';

	//! Name of the parameter for changing the texture path of the built-in lmts loader.
	(** Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::LMTS_TEXTURE_PATH, "path/to/your/textures");
	\endcode
	**)
	LMTS_TEXTURE_PATH: PAnsiChar = 'LMTS_TexturePath';

	//! Name of the parameter for changing the texture path of the built-in my3d loader.
	(** Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::MY3D_TEXTURE_PATH, "path/to/your/textures");
	\endcode **)
	MY3D_TEXTURE_PATH: PAnsiChar = 'MY3D_TexturePath';

	//! Name of the parameter specifying the COLLADA mesh loading mode
	(**
	Specifies if the COLLADA loader should create instances of the models, lights and
	cameras when loading COLLADA meshes. By default, this is set to false. If this is
	set to true, the ISceneManager::getMesh() method will only return a pointer to a
	dummy mesh and create instances of all meshes and lights and cameras in the collada
	file by itself. Example:
	\code
	SceneManager->getParameters()->setAttribute(scene::COLLADA_CREATE_SCENE_INSTANCES, true);
	\endcode *)
  COLLADA_CREATE_SCENE_INSTANCES: PAnsiChar = 'COLLADA_CreateSceneInstances';

	//! Name of the parameter for changing the texture path of the built-in DMF loader.
	(** This path is prefixed to the file names defined in the Deled file when loading
	textures. This allows to alter the paths for a specific project setting.
	Use it like this:
	\code
	SceneManager->getStringParameters()->setAttribute(scene::DMF_TEXTURE_PATH, "path/to/your/textures");
	\endcode	**)
	DMF_TEXTURE_PATH: PAnsiChar = 'DMF_TexturePath';

	//! Name of the parameter for preserving DMF textures dir structure with built-in DMF loader.
	(** If this parameter is set to true, the texture directory defined in the Deled file
	is ignored, and only the texture name is used to find the proper file. Otherwise, the
	texture path is also used, which allows to use a nicer media layout.
	Use it like this:
	\code
	//this way you won't use this setting (default)
	SceneManager->getParameters()->setAttribute(scene::DMF_IGNORE_MATERIALS_DIRS, false);
	\endcode
	\code
	//this way you'll use this setting
	SceneManager->getParameters()->setAttribute(scene::DMF_IGNORE_MATERIALS_DIRS, true);
	\endcode **)
	DMF_IGNORE_MATERIALS_DIRS: PAnsiChar = 'DMF_IgnoreMaterialsDir';

	//! Name of the parameter for setting reference value of alpha in transparent materials.
	(** Use it like this:
	\code
	//this way you'll set alpha ref to 0.1
	SceneManager->getParameters()->setAttribute(scene::DMF_ALPHA_CHANNEL_REF, 0.1);
	\endcode **)
	DMF_ALPHA_CHANNEL_REF: PAnsiChar = 'DMF_AlphaRef';

	//! Name of the parameter for choose to flip or not tga files.
	(** Use it like this:
	\code
	//this way you'll choose to flip alpha textures
	SceneManager->getParameters()->setAttribute(scene::DMF_FLIP_ALPHA_TEXTURES, true);
	\endcode	**)
	DMF_FLIP_ALPHA_TEXTURES: PAnsiChar = 'DMF_FlipAlpha';

	//! Name of the parameter for changing the texture path of the built-in obj loader.
	(** Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::OBJ_TEXTURE_PATH, "path/to/your/textures");
	\endcode **)
	OBJ_TEXTURE_PATH: PAnsiChar = 'OBJ_TexturePath';

	//! Flag to avoid loading group structures in .obj files
	(** Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::OBJ_LOADER_IGNORE_GROUPS, true);
	\endcode **)
	OBJ_LOADER_IGNORE_GROUPS: PAnsiChar = 'OBJ_IgnoreGroups';

	//! Flag to avoid loading material .mtl file for .obj files
	(** Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::OBJ_LOADER_IGNORE_MATERIAL_FILES, true);
	\endcode	**)
	OBJ_LOADER_IGNORE_MATERIAL_FILES: PAnsiChar = 'OBJ_IgnoreMaterialFiles';

	//! Flag to ignore the b3d file's mipmapping flag
	(** Instead Irrlicht's texture creation flag is used. Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::B3D_LOADER_IGNORE_MIPMAP_FLAG, true);
	\endcode **)
	B3D_LOADER_IGNORE_MIPMAP_FLAG: PAnsiChar = 'B3D_IgnoreMipmapFlag';

	//! Name of the parameter for changing the texture path of the built-in b3d loader.
	(** Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::B3D_TEXTURE_PATH, "path/to/your/textures");
	\endcode	**)
	B3D_TEXTURE_PATH: PAnsiChar = 'B3D_TexturePath';

	//! Flag set as parameter when the scene manager is used as editor
	(** In this way special animators like deletion animators can be stopped from
	deleting scene nodes for example *)
	IRR_SCENE_MANAGER_IS_EDITOR: PAnsiChar = 'IRR_Editor';

	//! Name of the parameter for setting the length of debug normals.
	(** Use it like this:
	\code
	SceneManager->getParameters()->setAttribute(scene::DEBUG_NORMAL_LENGTH, 1.5f);
	\endcode **)
	DEBUG_NORMAL_LENGTH: PAnsiChar = 'DEBUG_Normal_Length';

	//! Name of the parameter for setting the color of debug normals.
	(** Use it like this:
	\code
	SceneManager->getParameters()->setAttributeAsColor(scene::DEBUG_NORMAL_COLOR, video::SColor(255, 255, 255, 255));
	\endcode
	**)
	DEBUG_NORMAL_COLOR: PAnsiChar = 'DEBUG_Normal_Color';


var
  IDENTITY_MATERIAL: SMaterial;

var
  ExposedVideoData: SExposedVideoData = (Values: (nil, nil, nil));

implementation

initialization
  begin
    IDENTITY_MATERIAL.Init;
  end;


end.
